package org.mbcorp.sar.service;

import java.security.Principal;
import java.util.List;

import org.mbcorp.sar.model.Actividad;
import org.mbcorp.sar.model.Fase;
import org.mbcorp.sar.model.FiltroBusqueda;
import org.mbcorp.sar.model.Horario;
import org.mbcorp.sar.model.Operador;

public interface FaseService {

	public Fase grabar(Fase created);

    public Fase eliminar(Integer faseId) throws RuntimeException;

    public List<Fase> buscarTodos();

    public Fase buscarPorId(Integer id);

    public Fase actualizar(Fase updated) throws RuntimeException;
    
    public Horario anexarHorario(Fase fase, Operador operador,Horario horarioDTO);
	
//    public Fase actualizarFase(Fase fase);
    
    public List<Fase> buscarFasesVencidas();
    
    public List<Fase> buscarInactivas(FiltroBusqueda filtroBusqueda);
    
    public Fase generarFechasProgramacion(Fase fase);
    
    public Fase activarFase(Fase fase);
    
    public List<Fase> buscarFasesActivasPorOperador(Principal currentUser);
    
    public List<Fase> buscarFasesActivasPorOperador(FiltroBusqueda filtroBusqueda, Principal currentUser);
    
    public Fase cerrarFase(Fase fase);
    
    public 	 Double getHorasTranscurridasPorOperador(Fase fase, Operador operador);

}
